package controller;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;

import javax.swing.JFileChooser;

import model.Contact;
import model.ListeContacts;
import vue.Fenetre;





public class Action implements ActionListener {
	
	
	//static  ArrayList<Contact> maListe = new ArrayList<Contact>();
	static Contact C = new Contact(); 
	static String cheminNouvellePhoto;
	 
	 
	  
	
	public void actionPerformed(ActionEvent e) {     
		
		
	
	    //add contact
		if(e.getSource() == Fenetre.getButton()) {	
			
					//System.out.println(Fenetre.getJCGroupe()+"-");	
					
					Contact nouveauContact = new Contact(Fenetre.getJtf1().getText(),Fenetre.getJtf2().getText(),
							                             Fenetre.getJtf3().getText(),Fenetre.getJtf4().getText(),
							                             Fenetre.getJtf5().getText(),Fenetre.getJtf6().getText(),
							                             Fenetre.getJtf7().getText(),Fenetre.getJtf8().getText(),
							                             Fenetre.getJtf10().getText(),Fenetre.getJtf11().getText(),
							                             Fenetre.getJCGroupe());
							                             
					
					
					//dans mon array list de contact
					ListeContacts.addContact(nouveauContact);
					
					
					try {
						//ecrit dans le csv 
						ListeContacts.newContact(Fenetre.getJtf1().getText(),Fenetre.getJtf2().getText(),
												 Fenetre.getJtf3().getText(),Fenetre.getJtf4().getText(),
					                             Fenetre.getJtf5().getText(),Fenetre.getJtf6().getText(),
					                             Fenetre.getJtf7().getText(),Fenetre.getJtf8().getText(),
					                             Fenetre.getJtf10().getText(),Fenetre.getJtf11().getText(),
					                             Fenetre.getJCGroupe());
					                             
						
					} catch (FileNotFoundException e1) {
						
						e1.printStackTrace();
					} catch (IOException e1) {
						
						e1.printStackTrace();
					}
																				
					//top2.remove(pane);
																				
					Controller.fenetre.ActualiserTop2();
														
		}
		
		
		//delete contact
		else if(e.getSource() == Fenetre.getB2()) {
						
			
			
			/*
			System.out.print("-");
			System.out.println(Fenetre.getSupprimerMembreString());
			System.out.print("-");
			*/
			
			try {
				
				//ListeContacts.supprContact()
				ListeContacts.supprimerMembreCSV(Fenetre.getSupprimerMembreString());
				
				
				
				//System.out.println("ici");
			} catch (IOException e1) {
				
				e1.printStackTrace();
			} catch (CloneNotSupportedException e1) {
				
				e1.printStackTrace();
			}
			
							
			Controller.fenetre.ActualiserTop2();
			
			
			
		}
		
		
		//ajouter photo
		else if(e.getSource() == Fenetre.getB3()) {
		       
			
			 
			   
			  JFileChooser fc = new JFileChooser();
			   
		       int returnVal = fc.showOpenDialog(Controller.fenetre);
		       
		       File file;
		      
		       if (returnVal == JFileChooser.APPROVE_OPTION) 
		       {	
		    	   file= fc.getSelectedFile();            
                   cheminNouvellePhoto=file.getAbsolutePath();
		           System.out.println(cheminNouvellePhoto);
		           
		       }
		       
		       	       
		       
		       Controller.fenetre.ActualiserPhoto();
		}
	
	       
		else if(e.getSource() == Fenetre.getB3bis()) {
			
			Controller.fenetre.ActualiserTop6();
			
		}
		
		
		//Trier par groupe Aucun
	       else if(e.getSource() == Fenetre.getB4()) {
	    	   
				
				try {
					ListeContacts.TrierParGoupeAucun();
				} catch (IOException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				} catch (CloneNotSupportedException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
               
				Controller.fenetre.ActualiserTop2();
              
	    	   
	       }
	       else if(e.getSource() == Fenetre.getB5()) {
	    	   
				try {
					ListeContacts.TrierParGoupeAmi();
				} catch (IOException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				} catch (CloneNotSupportedException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
               
				Controller.fenetre.ActualiserTop2();
              
	    	   
	       }
	       else if(e.getSource() == Fenetre.getB6()) {
	    	   
				try {
					ListeContacts.TrierParFamille();
				} catch (IOException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				} catch (CloneNotSupportedException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
               
				Controller.fenetre.ActualiserTop2();
	    	   
	    	   
	    	   
	       }
	       else if(e.getSource() == Fenetre.getB7()) {
	    	   
				try {
					ListeContacts.TrierParTravail();
				} catch (IOException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				} catch (CloneNotSupportedException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
               
				Controller.fenetre.ActualiserTop2();
	    	   
	       }
	       else if(e.getSource() == Fenetre.getB8()) {
	    	   
	    	   try {
				ListeContacts.lectureCSV();
			} catch (IOException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			} catch (CloneNotSupportedException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
	    	   Controller.fenetre.ActualiserTop2();
	    	   
	       }
		
		
	       else if(e.getSource() == Fenetre.getB9()) {
	    	   
	    	   
				
				System.out.print("-");
				System.out.println(Fenetre.getSupprimerMembreString());
				System.out.print("-");
				
				
				
				try {					
					//ListeContacts.supprContact()
					ListeContacts.supprimerMembreCSV(Fenetre.getSupprimerMembreString());
									
					//System.out.println("ici");
				} catch (IOException e1) {
					
					e1.printStackTrace();
				} catch (CloneNotSupportedException e1) {
					
					e1.printStackTrace();
				}
				
				
				
				//System.out.println(Fenetre.getJCGroupe()+"-");	
				
				
				Contact nouveauContact = new Contact(Fenetre.getJtf12().getText(),Fenetre.getJtf13().getText(),
						                             Fenetre.getJtf14().getText(),Fenetre.getJtf15().getText(),
						                             Fenetre.getJtf16().getText(),Fenetre.getJtf17().getText(),
						                             Fenetre.getJtf18().getText(),Fenetre.getJtf19().getText(),
						                             Fenetre.getJtf20().getText(),Fenetre.getJtf21().getText(),
						                             Fenetre.getJCgroupe2());
						                             
				
				
				//dans mon array list de contact
				ListeContacts.addContact(nouveauContact);
				
				
				try {
					//ecrit dans le csv 
					ListeContacts.newContact(Fenetre.getJtf12().getText(),Fenetre.getJtf13().getText(),
                            Fenetre.getJtf14().getText(),Fenetre.getJtf15().getText(),
                            Fenetre.getJtf16().getText(),Fenetre.getJtf17().getText(),
                            Fenetre.getJtf18().getText(),Fenetre.getJtf19().getText(),
                            Fenetre.getJtf20().getText(),Fenetre.getJtf21().getText(),
                            Fenetre.getJCgroupe2());
				                             
					
				} catch (FileNotFoundException e1) {
					
					e1.printStackTrace();
				} catch (IOException e1) {
					
					e1.printStackTrace();
				}
																			
				//top2.remove(pane);
				
				
				
				
				
				
				
	    	   
	    	   Controller.fenetre.ActualiserTop2();
	       }
	




	}



	public static String getCheminNouvellePhoto() {
		return cheminNouvellePhoto;
	}



	public static void setCheminNouvellePhoto(String cheminNouvellePhoto) {
		Action.cheminNouvellePhoto = cheminNouvellePhoto;
	}


	
	

}
